import numpy as np
import cv2 as cv

# 创建一个空白图像（黑色背景）
org_img = np.zeros((200, 400, 3), np.uint8)

help_str = """
点击图片, 按下键盘上的键:

w:增大字体 float
s:减小字体

q:增大厚度 int
a:减小厚度

i : 字体颜色 r通道 +10
k : 字体颜色 r通道 -10
"""

def putMultiLineText(img, text, org, fontFace, fontScale, color, thickness=1, lineType=cv.LINE_AA):
    """
    在图像上绘制多行文本
    :param img: 要绘制文本的图像
    :param text: 要绘制的长文本
    :param org: 文本起始位置 (x, y)
    :param fontFace: 字体类型
    :param fontScale: 字体缩放因子
    :param color: 文本颜色 (B, G, R)
    :param thickness: 文本线条粗细
    :param lineType: 线条类型
    """
    x, y = org
    lines = []
    # 分割文本为多行
    for line in text.split('\n'):
        lines.append(line)

    # 逐行绘制文本
    for line in lines:
        cv.putText(img, line, (x, y), fontFace, fontScale, color, thickness, lineType)
        # 根据字体大小调整 y 坐标以实现换行
        y += int(fontScale * 30)  

    return img

img = putMultiLineText(org_img, help_str, (10, 10), cv.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1, cv.LINE_AA)
cv.imshow("putText", img)

cv.waitKey(0)
cv.destroyAllWindows()
